<?php 
/* 
 * ********* CVS HEADER ********* 
 * 
 * $RCSfile: admupliste.php,v $ 
 * $Date: 2006/03/13 15:31:04 $ 
 * $Revision: 1.5 $ 
 * 
 * ********* CVS HEADER ********* 
 */
$L_modules = '';
$L_base_env = get_env_path();
require_once("module/INI/readinifile.php");
require_once(get_path_module("fonctions.fichiers"));
require_once("module/TPLN/TPLN.php");

function canImove($fichier,$type) {
	if($type!=''){
		if(stristr($type,file_ext($fichier))==false){
			return false;   
		}
	}   
	return true;
}

function moveFile($chemin, $fichier, $dest, $fichier_dest) { 
	if(is_file($chemin.$fichier)) {
		if(is_file($dest.$fichier_dest)) {
			unlink($dest.$fichier_dest);
		}
		return rename($chemin.$fichier, $dest.$fichier_dest); 
	}
	return "pbexist";
} 

function process_script($script,$param,$id_chemin,$chemin,$fichier) {
    if($script!='') {
        $couple = explode(',',$param);
        $nbcouple = count($couple);
        $params = array();
        for($i=0;$i<$nbcouple;$i++){
            list($key,$value) = explode('=',trim($couple[$i]));
            $params[$key]=$value;
        }
        require_once(get_path("module")."upload/".$script.".php");
        return upload_process($id_chemin,$chemin,$fichier,$params);
    }   
    return '';
}

$message="";
$curpath=$rportalparams->get_value("RPORTAL","upload.ftp.path");

if(($action=="process")&&($dest>-1)){
    /**
      * On deplace les fichiers...
      */   
    $message="";
    $query="SELECT p.path,p.filetype,p.script,p.param FROM rportal_upload_path AS p,hierarchie WHERE p.droit=hierarchie.id_groupe AND hierarchie.id_groupe_dessus='$session[id_groupe]' AND p.id='$dest'";
    $result=rportalrequete($query) or die ("ERREUR<br>$query");
    $i=0;
    $files = $_POST['files'];
    if($row=rportalligne($result)){
        while($files[$i])
        {
            if(canImove($files[$i],$row['filetype'])==true){
                $file = process_script($row['script'],$row['param'],$dest,$row['path'],$files[$i]);
                if($file!="false"){
                    if($file=='') $file = $files[$i];
                    $res=moveFile($curpath,$files[$i],$row['path'],$file);
                    if($res==="pbexist")
                        $message .="le fichier $files[$i] n'a pas pu etre deplace : ce fichier n'existe plus.<br />";
                    else{
                        $message .="On deplace $curpath$files[$i] -> $row[path]$files[$i]<br />";
                    }
                }else{
                    $message .="le fichier $files[$i] n'a pas pu etre deplace : cela provient de la configuration contextuel du repertoire de destination.<br />";
                }
            }else{
                $message .="le fichier $files[$i] n'a pas pu etre deplace : ce type de fichier n'est pas authorise dans le repertoire de destination.<br />";
            }
	        $i++;
        }
    }
}   
$TPLN = new TPLN; 
$TPLN->Open($op_basepath.get_path("tpl")."admupliste.html"); 
$TPLN->IncludeFile("header",$L_base_env.$session['environnement']."/header.php");
$TPLN->IncludeFile("footer",$L_base_env.$session['environnement']."/footer.php");

require_once(get_path_module("admin"));
$pc = new panneau_controle();
$pc->calculRubriqueParFonction($op);
$TPLN->Parse("panneau_controle",$pc->retourneEntete());

$TPLN->Parse("action","?op=admupliste#end");
$TPLN->Parse("message",$message);
$dir=dir($curpath);
$isfile=0;
while ($file = $dir->read()) {
    if($file != "." && $file != "..") {
        if (is_file($curpath.$file)) {
	        $isfile=1;
	        $TPLN->Parse("bloc1.fichier",$file); 
	        $TPLN->Parse("bloc1.taille",fsize(intval(filesize($curpath.$file)))); 
	        $TPLN->Parse("bloc1.icone",GetIcone(strtolower(file_ext($file)))); 
	        $TPLN->Loop("bloc1"); 
        }
    }
} 
if($isfile==0) $TPLN->EraseBloc("bloc1");
    
$res=0;
if($restricted!=''){
    $query="SELECT p.id,p.nom FROM rportal_upload_path AS p,hierarchie WHERE p.droit=hierarchie.id_groupe AND hierarchie.id_groupe_dessus='".$session['id_groupe']."' AND p.nom='$restricted' ORDER BY p.nom";
    $TPLN->Parse("restricted",$restricted);
    $res=1;
}else{
    $query="SELECT p.id,p.nom FROM rportal_upload_path AS p,hierarchie WHERE p.droit=hierarchie.id_groupe AND hierarchie.id_groupe_dessus='".$session['id_groupe']."' ORDER BY p.nom";
    $TPLN->Parse("restricted",'');
    $TPLN->Parse("bloc2.nom","&nbsp;"); 
    $TPLN->Parse("bloc2.valeur","-1"); 
    $TPLN->Loop("bloc2");
}
$result=rportalrequete($query) or die ("ERREUR<br>$query");
if(rportalnbresult($result)==0 && $res==1){
    $TPLN->EraseBloc("bloc2");
}else{
    while($row=rportalligne($result)) {
            $TPLN->Parse("bloc2.nom",$row['nom']); 
            $TPLN->Parse("bloc2.valeur",$row['id']); 
            $TPLN->Loop("bloc2"); 
    } 
}
if($redir==''){
    $TPLN->Parse("redir",'');
    $TPLN->EraseBloc("redir");
}else{
    $TPLN->Parse("redir",$redir);
    $TPLN->Parse("redir.redir",$redir);
    $TPLN->Loop("redir");
}
$TPLN->Write(); 
?> 